#!/bin/bash

##################
log_file='./test.log'

#################

#当前时间前一分钟
#curdate=`date -d "1 minute ago" +"%Y-%m-%d %H:%M"`
curdate='2022-02-14 18:35'
#echo ${curdate}

#获取日志的开始行和结束行号
log_start_line=$(cat -n $log_file | grep "${curdate}" | head -1 | cut -f1)
log_end_line=$(cat -n $log_file | grep "${curdate}" | tail -1 | cut -f1)

#提取最近一分钟的日志到新文件
if [ ! -d /data/log ];then mkdir /data/log;fi
sed -n "$log_start_line,${log_end_line}p" $log_file > /data/log/log_now.log

#清空错误日志文件
echo "" > /data/log/log_err.log

#将报错信息写入文件
err_list=(ERR err)
for i in ${err_list[*]}; do
    cat /data/log/log_now.log | grep -C 20 "${i}" >> /data/log/log_err.log
done